(0) Obligation:

Runtime Complexity TRS:
The TRS R consists of the following rules:

f(c(c(a, y, a), b(x, z), a)) → b(y, f(c(f(a), z, z)))
f(b(b(x, f(y)), z)) → c(z, x, f(b(b(f(a), y), y)))
c(b(a, a), b(y, z), x) → b(a, b(z, z))

Rewrite Strategy: INNERMOST

(1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)

Converted CpxTRS to CDT

(2) Obligation:

Complexity Dependency Tuples Problem
Rules:

f(c(c(a, z0, a), b(z1, z2), a)) → b(z0, f(c(f(a), z2, z2)))
f(b(b(z0, f(z1)), z2)) → c(z2, z0, f(b(b(f(a), z1), z1)))
c(b(a, a), b(z0, z1), z2) → b(a, b(z1, z1))
Tuples:

F(c(c(a, z0, a), b(z1, z2), a)) → c1(F(c(f(a), z2, z2)), C(f(a), z2, z2), F(a))
F(b(b(z0, f(z1)), z2)) → c2(C(z2, z0, f(b(b(f(a), z1), z1))), F(b(b(f(a), z1), z1)), F(a))
S tuples:

F(c(c(a, z0, a), b(z1, z2), a)) → c1(F(c(f(a), z2, z2)), C(f(a), z2, z2), F(a))
F(b(b(z0, f(z1)), z2)) → c2(C(z2, z0, f(b(b(f(a), z1), z1))), F(b(b(f(a), z1), z1)), F(a))
K tuples:none
Defined Rule Symbols:

f, c

Defined Pair Symbols:

F

Compound Symbols:

c1, c2

(3) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing nodes:

F(c(c(a, z0, a), b(z1, z2), a)) → c1(F(c(f(a), z2, z2)), C(f(a), z2, z2), F(a))

(4) Obligation:

Complexity Dependency Tuples Problem
Rules:

f(c(c(a, z0, a), b(z1, z2), a)) → b(z0, f(c(f(a), z2, z2)))
f(b(b(z0, f(z1)), z2)) → c(z2, z0, f(b(b(f(a), z1), z1)))
c(b(a, a), b(z0, z1), z2) → b(a, b(z1, z1))
Tuples:

F(b(b(z0, f(z1)), z2)) → c2(C(z2, z0, f(b(b(f(a), z1), z1))), F(b(b(f(a), z1), z1)), F(a))
S tuples:

F(b(b(z0, f(z1)), z2)) → c2(C(z2, z0, f(b(b(f(a), z1), z1))), F(b(b(f(a), z1), z1)), F(a))
K tuples:none
Defined Rule Symbols:

f, c

Defined Pair Symbols:

F

Compound Symbols:

c2

(5) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace F(b(b(z0, f(z1)), z2)) → c2(C(z2, z0, f(b(b(f(a), z1), z1))), F(b(b(f(a), z1), z1)), F(a)) by

F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
F(b(b(x0, f(x1)), x2)) → c2

(6) Obligation:

Complexity Dependency Tuples Problem
Rules:

f(c(c(a, z0, a), b(z1, z2), a)) → b(z0, f(c(f(a), z2, z2)))
f(b(b(z0, f(z1)), z2)) → c(z2, z0, f(b(b(f(a), z1), z1)))
c(b(a, a), b(z0, z1), z2) → b(a, b(z1, z1))
Tuples:

F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
F(b(b(x0, f(x1)), x2)) → c2
S tuples:

F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
F(b(b(x0, f(x1)), x2)) → c2
K tuples:none
Defined Rule Symbols:

f, c

Defined Pair Symbols:

F

Compound Symbols:

c2, c2

(7) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing nodes:

F(b(b(x0, f(x1)), x2)) → c2

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

f(c(c(a, z0, a), b(z1, z2), a)) → b(z0, f(c(f(a), z2, z2)))
f(b(b(z0, f(z1)), z2)) → c(z2, z0, f(b(b(f(a), z1), z1)))
c(b(a, a), b(z0, z1), z2) → b(a, b(z1, z1))
Tuples:

F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
S tuples:

F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
K tuples:none
Defined Rule Symbols:

f, c

Defined Pair Symbols:

F

Compound Symbols:

c2

(9) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
We considered the (Usable) Rules:

f(b(b(z0, f(z1)), z2)) → c(z2, z0, f(b(b(f(a), z1), z1)))
c(b(a, a), b(z0, z1), z2) → b(a, b(z1, z1))
And the Tuples:

F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(C(x1, x2, x3)) = [1] + x2   
POL(F(x1)) = [1] + x1   
POL(a) = 0   
POL(b(x1, x2)) = [5] + x1 + x2   
POL(c(x1, x2, x3)) = [3] + [3]x1   
POL(c2(x1, x2, x3)) = x1 + x2 + x3   
POL(f(x1)) = [1] + [5]x1   

(10) Obligation:

Complexity Dependency Tuples Problem
Rules:

f(c(c(a, z0, a), b(z1, z2), a)) → b(z0, f(c(f(a), z2, z2)))
f(b(b(z0, f(z1)), z2)) → c(z2, z0, f(b(b(f(a), z1), z1)))
c(b(a, a), b(z0, z1), z2) → b(a, b(z1, z1))
Tuples:

F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
S tuples:none
K tuples:

F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
Defined Rule Symbols:

f, c

Defined Pair Symbols:

F

Compound Symbols:

c2

(11) SIsEmptyProof (EQUIVALENT transformation)

The set S is empty

(12) BOUNDS(O(1), O(1))